#ifndef STATUSBARFORMATTER_H
#define STATUSBARFORMATTER_H

#include <QString>
#include <qglobal.h>

/**
 * StatusBarFormatter - 状态栏格式化工具类
 *
 * Martin Fowler重构：Move Method
 * 将分散在StatusBarManager中的格式化逻辑集中到专门的工具类中
 * 遵循单一职责原则，提高代码复用性和可测试性
 */
class StatusBarFormatter
{
public:
    // 禁止实例化，纯静态工具类
    StatusBarFormatter() = delete;

    // 页面信息格式化
    static QString formatPageInfo(int currentPage, int totalPages);

    // 缓存信息格式化
    static QString formatCacheInfo(qint64 cacheSize, int cacheCount);

    // 导出设置格式化
    static QString formatExportSettings(int dpi, const QString& quality);

    // 文件大小格式化（通用工具方法）
    static QString formatFileSize(qint64 bytes);

    // 导出进度格式化
    static QString formatExportProgress(int completed, int total, double percentage);

    // 时间格式化
    static QString formatElapsedTime(int seconds);

    // 数量格式化（带单位）
    static QString formatCount(int count, const QString& unit, const QString& pluralUnit = "");

private:
    // 内部辅助方法
    static QString formatBytesInternal(qint64 bytes, int precision);
    static QString pluralize(int count, const QString& singular, const QString& plural);
};

#endif // STATUSBARFORMATTER_H